package com.hulizuofang.wol.chat.client.gin;

import com.google.gwt.event.shared.EventBus;
import com.google.gwt.inject.client.AsyncProvider;
import com.google.gwt.inject.client.GinModules;
import com.google.gwt.inject.client.Ginjector;
import com.google.inject.Provider;
import com.gwtplatform.dispatch.client.gin.DispatchAsyncModule;
import com.gwtplatform.dispatch.shared.DispatchAsync;
import com.gwtplatform.mvp.client.proxy.PlaceManager;
import com.hulizuofang.wol.chat.client.bundle.ClientResourceBundle;
import com.hulizuofang.wol.chat.client.presenter.MainPagePresenter;
import com.hulizuofang.wol.chat.client.presenter.StartPagePresenter;
import com.hulizuofang.wol.chat.client.presenter.WhoisOnlinePagePresenter;

@GinModules({ DispatchAsyncModule.class, ClientModule.class })
public interface ClientGinjector extends Ginjector {
	EventBus getEventBus();
	ClientResourceBundle getBundle();
	PlaceManager getPlaceManager();
	DispatchAsync getDispatcher();
	
	Provider<MainPagePresenter> getMainPagePresenter();
	AsyncProvider<StartPagePresenter> getStartPagePresenter();
	AsyncProvider<WhoisOnlinePagePresenter> getWhoisOnlinePagePresenter();
}
